import request from './request'

/**
 * 评论管理相关API
 */

/**
 * 获取评论列表（管理端）
 * @param {Object} params 查询参数
 * @returns {Promise} 评论列表响应
 */
export const getCommentList = (params) => {
    return request({
        url: '/api/admin/comments',
        method: 'GET',
        params
    })
}

/**
 * 获取评论详情（管理端）
 * @param {number} id 评论ID
 * @returns {Promise} 评论详情响应
 */
export const getCommentDetail = (id) => {
    return request({
        url: `/api/admin/comments/${id}`,
        method: 'GET'
    })
}

/**
 * 更新评论状态
 * @param {number} id 评论ID
 * @param {number} status 状态值
 * @returns {Promise} 更新响应
 */
export const updateCommentStatus = (id, status) => {
    return request({
        url: `/api/admin/comments/${id}/status`,
        method: 'PUT',
        data: {status}
    })
}

/**
 * 商家回复评论
 * @param {number} id 评论ID
 * @param {Object} data 回复数据
 * @returns {Promise} 回复响应
 */
export const replyComment = (id, data) => {
    return request({
        url: `/api/admin/comments/${id}/reply`,
        method: 'PUT',
        data
    })
}

/**
 * 批量删除评论
 * @param {Array} commentIds 评论ID数组
 * @returns {Promise} 删除响应
 */
export const batchDeleteComments = (commentIds) => {
    return request({
        url: '/api/admin/comments/batch',
        method: 'DELETE',
        data: commentIds
    })
}

/**
 * 批量更新评论状态
 * @param {Array} ids 评论ID数组
 * @param {number} status 状态值
 * @returns {Promise} 更新响应
 */
export const batchUpdateCommentStatus = (ids, status) => {
    return request({
        url: '/api/admin/comments/batch/status',
        method: 'PUT',
        data: {ids, status}
    })
}

/**
 * 获取评论统计信息
 * @returns {Promise} 统计响应
 */
export const getCommentStatistics = () => {
    return request({
        url: '/api/admin/comments/statistics',
        method: 'GET'
    })
}

/**
 * 获取商品评论统计信息
 * @param {number} productId 商品ID
 * @returns {Promise} 统计响应
 */
export const getProductCommentStatistics = (productId) => {
    return request({
        url: `/api/admin/comments/statistics/product/${productId}`,
        method: 'GET'
    })
}
